#include<iostream>
#include<signal.h>
#include<unistd.h>

void PrintPending()
{
    sigset_t pending;
    int n=sigpending(&pending);
    for(int i=31;i>=1;i--)
    {
        if(sigismember(&pending,i))
            std::cout<<1;
        else
            std::cout<<0;
    }
    std::cout<<std::endl;
}

int main()
{
    sigset_t set,oset;
    sigemptyset(&set);
    sigaddset(&set,SIGINT);
    int n=sigprocmask(SIG_SETMASK,&set,&oset);
    while(true)
    {
        PrintPending();
        sleep(1);
    }
    return 0;
}



// void sigcb(int signum)
// {
//     std::cout<<"获得一个信号: "<<signum<<std::endl;
// }

// int main()
// {
//     struct sigaction act,oldact;
//     act.sa_handler = sigcb;
//     act.sa_flags=0;
//     sigemptyset(&act.sa_mask);
    
//     sigaction(SIGINT,&act,&oldact);
//     while(true)
//     {
//         std::cout<<"hello linux!"<<std::endl;
//         sleep(1);
//     }
//     return 0;
// }

// int main()
// {
//     signal(SIGINT,sigcb);
//     while(true)
//     {
//         std::cout<<"hello linux!"<<std::endl;
//         sleep(1);
//     }
//     return 0;
// }